```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>分布式搜索系统架构与优化实践</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            line-height: 1.8;
            color: #333;
        }
        .hero-gradient {
            background: linear-gradient(135deg, #0061ff 0%, #60efff 100%);
        }
        .dropcap::first-letter {
            float: left;
            font-size: 4.5rem;
            line-height: 0.75;
            margin: 0.1em 0.1em 0.2em 0;
            color: #0061ff;
            font-weight: 700;
        }
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }
        .section-divider {
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(0, 97, 255, 0.3), transparent);
        }
        .fade-in {
            animation: fadeIn 0.6s ease-in-out;
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero-gradient text-white py-24 px-4 md:px-0">
        <div class="container mx-auto max-w-5xl text-center">
            <h1 class="text-4xl md:text-6xl font-bold mb-6 leading-tight fade-in">
                分布式搜索系统架构与优化
            </h1>
            <p class="text-xl md:text-2xl opacity-90 mb-8 max-w-3xl mx-auto fade-in">
                大数据时代下，如何构建高性能、高可用的分布式搜索系统
            </p>
            <div class="flex justify-center space-x-4 fade-in">
                <a href="#architecture" class="bg-white text-blue-600 hover:bg-blue-50 px-6 py-3 rounded-full font-medium transition-all duration-300">
                    <i class="fas fa-project-diagram mr-2"></i> 架构设计
                </a>
                <a href="#implementation" class="bg-white bg-opacity-20 hover:bg-opacity-30 px-6 py-3 rounded-full font-medium transition-all duration-300">
                    <i class="fas fa-code mr-2"></i> 实现方案
                </a>
            </div>
        </div>
    </section>

    <!-- Introduction Section -->
    <section class="py-16 px-4 md:px-0 bg-white">
        <div class="container mx-auto max-w-4xl">
            <p class="text-gray-700 text-lg md:text-xl leading-relaxed dropcap">
                在如今的大数据时代，信息的增长速度已超出传统单机搜索引擎的处理能力，分布式搜索系统应运而生。通过分布式架构，可以有效地扩展搜索引擎的存储和处理能力，提高系统的性能、可用性和可靠性。
            </p>
        </div>
    </section>

    <!-- Architecture Section -->
    <section id="architecture" class="py-16 px-4 md:px-0 bg-gray-50">
        <div class="container mx-auto max-w-5xl">
            <div class="flex items-center mb-12">
                <div class="w-12 h-1 bg-blue-500 mr-4"></div>
                <h2 class="text-3xl md:text-4xl font-bold text-gray-800">
                    一、分布式搜索系统的架构设计
                </h2>
            </div>

            <div class="mb-16">
                <h3 class="text-2xl font-semibold mb-6 text-gray-800 flex items-center">
                    <span class="w-8 h-8 bg-blue-500 rounded-full text-white flex items-center justify-center mr-3">1</span>
                    1.1 分布式搜索系统的基本架构
                </h3>
                <p class="text-gray-700 mb-6">
                    一个典型的分布式搜索系统通常由多个节点组成，所有节点协同工作，完成数据存储、索引、查询等任务。分布式搜索系统通常包括以下几个关键模块：
                </p>
                
                <div class="grid md:grid-cols-2 gap-6 mb-8">
                    <div class="bg-white p-6 rounded-xl shadow-md card-hover transition-all duration-300">
                        <div class="flex items-center mb-4">
                            <div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center text-blue-600 mr-4">
                                <i class="fas fa-database text-xl"></i>
                            </div>
                            <h4 class="text-lg font-semibold text-gray-800">数据存储节点</h4>
                        </div>
                        <p class="text-gray-700">
                            负责存储文档数据和索引数据。一般使用分布式存储系统，如分布式文件系统或分布式数据库（如 Elasticsearch）。
                        </p>
                    </div>
                    
                    <div class="bg-white p-6 rounded-xl shadow-md card-hover transition-all duration-300">
                        <div class="flex items-center mb-4">
                            <div class="w-10 h-10 bg-green-100 rounded-full flex items-center justify-center text-green-600 mr-4">
                                <i class="fas fa-search text-xl"></i>
                            </div>
                            <h4 class="text-lg font-semibold text-gray-800">查询节点</h4>
                        </div>
                        <p class="text-gray-700">
                            负责接收用户查询请求，并根据请求进行计算和数据检索。查询节点通常会根据负载均衡算法，选择不同的数据存储节点进行查询处理。
                        </p>
                    </div>
                    
                    <div class="bg-white p-6 rounded-xl shadow-md card-hover transition-all duration-300">
                        <div class="flex items-center mb-4">
                            <div class="w-10 h-10 bg-purple-100 rounded-full flex items-center justify-center text-purple-600 mr-4">
                                <i class="fas fa-balance-scale text-xl"></i>
                            </div>
                            <h4 class="text-lg font-semibold text-gray-800">负载均衡与调度</h4>
                        </div>
                        <p class="text-gray-700">
                            为避免某个节点成为瓶颈，负载均衡器会将请求均匀分配到不同的查询节点上，实现系统的高效运转。
                        </p>
                    </div>
                    
                    <div class="bg-white p-6 rounded-xl shadow-md card-hover transition-all duration-300">
                        <div class="flex items-center mb-4">
                            <div class="w-10 h-10 bg-yellow-100 rounded-full flex items-center justify-center text-yellow-600 mr-4">
                                <i class="fas fa-indent text-xl"></i>
                            </div>
                            <h4 class="text-lg font-semibold text-gray-800">数据索引节点</h4>
                        </div>
                        <p class="text-gray-700">
                            进行数据索引的创建和维护，确保每一条文档都能够被快速检索。通常采用倒排索引结构，并对数据进行分片和副本备份。
                        </p>
                    </div>
                </div>
            </div>

            <div class="mb-16">
                <h3 class="text-2xl font-semibold mb-6 text-gray-800 flex items-center">
                    <span class="w-8 h-8 bg-blue-500 rounded-full text-white flex items-center justify-center mr-3">2</span>
                    1.2 分布式搜索系统的核心挑战
                </h3>
                <p class="text-gray-700 mb-6">
                    虽然分布式搜索系统可以大大提升性能，但在设计和实现过程中也面临一些技术挑战：
                </p>
                
                <div class="bg-white p-6 rounded-xl shadow-md mb-6">
                    <div class="space-y-4">
                        <div class="flex items-start">
                            <div class="flex-shrink-0 h-6 w-6 bg-blue-100 rounded-full flex items-center justify-center mt-1 mr-3">
                                <i class="fas fa-exclamation-circle text-blue-500"></i>
                            </div>
                            <p class="text-gray-700">
                                <strong class="text-gray-800">数据分片与分布：</strong>如何将海量的数据均匀分配到各个节点，保证负载均衡，并提高查询效率。
                            </p>
                        </div>
                        
                        <div class="flex items-start">
                            <div class="flex-shrink-0 h-6 w-6 bg-blue-100 rounded-full flex items-center justify-center mt-1 mr-3">
                                <i class="fas fa-exclamation-circle text-blue-500"></i>
                            </div>
                            <p class="text-gray-700">
                                <strong class="text-gray-800">高可用性和容错性：</strong>节点的故障会影响系统的可用性，如何实现高可用性和容错性是关键。
                            </p>
                        </div>
                        
                        <div class="flex items-start">
                            <div class="flex-shrink-0 h-6 w-6 bg-blue-100 rounded-full flex items-center justify-center mt-1 mr-3">
                                <i class="fas fa-exclamation-circle text-blue-500"></i>
                            </div>
                            <p class="text-gray-700">
                                <strong class="text-gray-800">一致性和可扩展性：</strong>如何在保证数据一致性的同时，让系统具有良好的可扩展性，处理更多的查询请求。
                            </p>
                        </div>
                        
                        <div class="flex items-start">
                            <div class="flex-shrink-0 h-6 w-6 bg-blue-100 rounded-full flex items-center justify-center mt-1 mr-3">
                                <i class="fas fa-exclamation-circle text-blue-500"></i>
                            </div>
                            <p class="text-gray-700">
                                <strong class="text-gray-800">查询优化：</strong>如何设计高效的查询机制，保证在分布式架构下，能够快速响应用户的查询请求。
                            </p>
                        </div>
                    </div>
                </div>
                
                <div class="bg-white p-6 rounded-xl shadow-md">
                    <div class="mermaid">
                        graph TD
                            A[用户请求] --> B[负载均衡器]
                            B --> C1[查询节点1]
                            B --> C2[查询节点2]
                            B --> C3[查询节点3]
                            C1 --> D1[数据存储节点1]
                            C1 --> D2[数据存储节点2]
                            C2 --> D2[数据存储节点2]
                            C2 --> D3[数据存储节点3]
                            C3 --> D1[数据存储节点1]
                            C3 --> D3[数据存储节点3]
                            D1 --> E[(数据分片1)]
                            D2 --> F[(数据分片2)]
                            D3 --> G[(数据分片3)]
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Implementation Section -->
    <section id="implementation" class="py-16 px-4 md:px-0 bg-white">
        <div class="container mx-auto max-w-5xl">
            <div class="flex items-center mb-12">
                <div class="w-12 h-1 bg-blue-500 mr-4"></div>
                <h2 class="text-3xl md:text-4xl font-bold text-gray-800">
                    二、分布式搜索引擎的实现方案
                </h2>
            </div>
            
            <p class="text-gray-700 mb-12">
                目前，市场上有多个开源和商业化的分布式搜索引擎解决方案。常见的有 Elasticsearch 和 Apache Solr，它们都支持分布式部署，但在实现机制、性能、扩展性等方面有所不同。接下来，我们将对这两者进行对比，分析它们的优缺点。
            </p>
            
            <div class="grid md:grid-cols-2 gap-8 mb-16">
                <div class="bg-gray-50 p-8 rounded-xl border border-gray-200">
                    <div class="flex items-center mb-6">
                        <div class="w-12 h-12 bg-blue-500 rounded-lg flex items-center justify-center text-white mr-4">
                            <i class="fab fa-elastic text-2xl"></i>
                        </div>
                        <h3 class="text-2xl font-bold text-gray-800">Elasticsearch</h3>
                    </div>
                    
                    <p class="text-gray-700 mb-6">
                        Elasticsearch 是目前最受欢迎的分布式搜索引擎，它基于 Apache Lucene 构建，支持全文搜索和复杂的查询操作，广泛应用于日志分析、数据监控和大数据处理等场景。
                    </p>
                    
                    <div class="mb-6">
                        <h4 class="text-lg font-semibold mb-3 text-gray-800 flex items-center">
                            <i class="fas fa-sitemap mr-2 text-blue-500"></i> 架构特点
                        </h4>
                        <ul class="space-y-2 text-gray-700">
                            <li class="flex items-start">
                                <i class="fas fa-circle text-xs text-blue-500 mt-2 mr-2"></i>
                                <span><strong>节点类型：</strong>数据节点、主节点、协调节点</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-circle text-xs text-blue-500 mt-2 mr-2"></i>
                                <span><strong>分片与副本：</strong>每个索引划分为多个分片，每个分片可有多个副本</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-circle text-xs text-blue-500 mt-2 mr-2"></i>
                                <span><strong>自动扩展：</strong>内置自动分片和扩展机制</span>
                            </li>
                        </ul>
                    </div>
                    
                    <div>
                        <h4 class="text-lg font-semibold mb-3 text-gray-800 flex items-center">
                            <i class="fas fa-chart-bar mr-2 text-blue-500"></i> 优缺点分析
                        </h4>
                        <div class="grid grid-cols-1 gap-4">
                            <div class="bg-blue-50 p-4 rounded-lg">
                                <h5 class="font-medium text-blue-800 mb-1 flex items-center">
                                    <i class="fas fa-check-circle mr-2"></i> 优势
                                </h5>
                                <ul class="text-sm text-blue-700 space-y-1">
                                    <li class="flex items-start">
                                        <i class="fas fa-check text-xs mt-1 mr-2"></i>
                                        <span>易于扩展，支持自动分片和水平扩展</span>
                                    </li>
                                    <li class="flex items-start">
                                        <i class="fas fa-check text-xs mt-1 mr-2"></i>
                                        <span>强大的查询能力，支持复杂聚合和全文检索</span>
                                    </li>
                                    <li class="flex items-start">
                                        <i class="fas fa-check text-xs mt-1 mr-2"></i>
                                        <span>内置分布式设计，处理高并发能力强</span>
                                    </li>
                                </ul>
                            </div>
                            
                            <div class="bg-red-50 p-4 rounded-lg">
                                <h5 class="font-medium text-red-800 mb-1 flex items-center">
                                    <i class="fas fa-exclamation-circle mr-2"></i> 不足
                                </h5>
                                <ul class="text-sm text-red-700 space-y-1">
                                    <li class="flex items-start">
                                        <i class="fas fa-times text-xs mt-1 mr-2"></i>
                                        <span>复杂查询可能存在性能瓶颈</span>
                                    </li>
                                    <li class="flex items-start">
                                        <i class="fas fa-times text-xs mt-1 mr-2"></i>
                                        <span>内存占用较高，管理挑战大</span>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
                
                <div class="bg-gray-50 p-8 rounded-xl border border-gray-200">
                    <div class="flex items-center mb-6">
                        <div class="w-12 h-12 bg-yellow-500 rounded-lg flex items-center justify-center text-white mr-4">
                            <i class="fas fa-sun text-2xl"></i>
                        </div>
                        <h3 class="text-2xl font-bold text-gray-800">Apache Solr</h3>
                    </div>
                    
                    <p class="text-gray-700 mb-6">
                        Apache Solr 也是一个基于 Lucene 的开源搜索引擎，它的功能与 Elasticsearch 类似，支持分布式部署、全文搜索、实时索引等。
                    </p>
                    
                    <div class="mb-6">
                        <h4 class="text-lg font-semibold mb-3 text-gray-800 flex items-center">
                            <i class="fas fa-sitemap mr-2 text-yellow-500"></i> 架构特点
                        </h4>
                        <ul class="space-y-2 text-gray-700">
                            <li class="flex items-start">
                                <i class="fas fa-circle text-xs text-yellow-500 mt-2 mr-2"></i>
                                <span><strong>SolrCloud：</strong>分布式部署模式，支持自动数据分片和复制</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-circle text-xs text-yellow-500 mt-2 mr-2"></i>
                                <span><strong>Zookeeper：</strong>管理集群元数据、配置和状态</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-circle text-xs text-yellow-500 mt-2 mr-2"></i>
                                <span><strong>灵活搜索：</strong>支持多种分布式搜索模式</span>
                            </li>
                        </ul>
                    </div>
                    
                    <div>
                        <h4 class="text-lg font-semibold mb-3 text-gray-800 flex items-center">
                            <i class="fas fa-chart-bar mr-2 text-yellow-500"></i> 优缺点分析
                        </h4>
                        <div class="grid grid-cols-1 gap-4">
                            <div class="bg-green-50 p-4 rounded-lg">
                                <h5 class="font-medium text-green-800 mb-1 flex items-center">
                                    <i class="fas fa-check-circle mr-2"></i> 优势
                                </h5>
                                <ul class="text-sm text-green-700 space-y-1">
                                    <li class="flex items-start">
                                        <i class="fas fa-check text-xs mt-1 mr-2"></i>
                                        <span>灵活的分布式搜索模式配置</span>
                                    </li>
                                    <li class="flex items-start">
                                        <i class="fas fa-check text-xs mt-1 mr-2"></i>
                                        <span>强大的索引功能，支持多种数据类型</span>
                                    </li>
                                    <li class="flex items-start">
                                        <i class="fas fa-check text-xs mt-1 mr-2"></i>
                                        <span>高可用性，容错机制强</span>
                                    </li>
                                </ul>
                            </div>
                            
                            <div class="bg-red-50 p-4 rounded-lg">
                                <h5 class="font-medium text-red-800 mb-1 flex items-center">
                                    <i class="fas fa-exclamation-circle mr-2"></i> 不足
                                </h5>
                                <ul class="text-sm text-red-700 space-y-1">
                                    <li class="flex items-start">
                                        <i class="fas fa-times text-xs mt-1 mr-2"></i>
                                        <span>配置和部署较为复杂</span>
                                    </li>
                                    <li class="flex items-start">
                                        <i class="fas fa-times text-xs mt-1 mr-2"></i>
                                        <span>大规模查询下需要精细调校</span>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="bg-white border border-gray-200 rounded-xl p-6 shadow-sm">
                <div class="mermaid">
                    flowchart LR
                        subgraph ES[Elasticsearch]
                            direction TB
                            A[协调节点] --> B[数据节点]
                            A --> C[主节点]
                            B --> D[分片1]
                            B --> E[分片2]
                        end
                        
                        subgraph Solr[Apache Solr]
                            direction TB
                            F[SolrCloud] --> G[Zookeeper]
                            F --> H[数据节点1]
                            F --> I[数据节点2]
                            H --> J[分片A]
                            H --> K[分片B]
                        end
                        
                        ES --"对比"--> Solr
                </div>
            </div>
        </div>
    </section>

    <!-- Optimization Section -->
    <section class="py-16 px-4 md:px-0 bg-gray-50">
        <div class="container mx-auto max-w-5xl">
            <div class="flex items-center mb-12">
                <div class="w-12 h-1 bg-blue-500 mr-4"></div>
                <h2 class="text-3xl md:text-4xl font-bold text-gray-800">
                    三、分布式搜索系统的设计与优化实践
                </h2>
            </div>
            
            <div class="space-y-16">
                <div>
                    <h3 class="text-2xl font-semibold mb-6 text-gray-800 flex items-center">
                        <span class="w-8 h-8 bg-blue-500 rounded-full text-white flex items-center justify-center mr-3">1</span>
                        3.1 数据分片与副本的优化
                    </h3>
                    
                    <div class="grid md:grid-cols-2 gap-8">
                        <div>
                            <p class="text-gray-700 mb-4">
                                无论是 Elasticsearch 还是 Solr，数据分片和副本都是分布式搜索引擎的基础设计。合理的分片策略可以提高系统的查询性能和存储效率。
                            </p>
                            
                            <div class="bg-white p-6 rounded-lg shadow-sm">
                                <h4 class="text-lg font-semibold mb-3 text-gray-800 flex items-center">
                                    <i class="fas fa-lightbulb text-yellow-500 mr-2"></i> 最佳实践
                                </h4>
                                <ul class="space-y-3 text-gray-700">
                                    <li class="flex items-start">
                                        <div class="flex-shrink-0 h-6 w-6 bg-blue-100 rounded-full flex items-center justify-center mt-1 mr-3">
                                            <span class="text-blue-500 font-semibold">1</span>
                                        </div>
                                        <p>
                                            <strong>分片数的选择：</strong>过多的分片会导致管理和查询成本增加，而过少的分片会影响系统的扩展性。通常，分片数应该根据数据量、查询量和系统的硬件配置来综合决定。
                                        </p>
                                    </li>
                                    <li class="flex items-start">
                                        <div class="flex-shrink-0 h-6 w-6 bg-blue-100 rounded-full flex items-center justify-center mt-1 mr-3">
                                            <span class="text-blue-500 font-semibold">2</span>
                                        </div>
                                        <p>
                                            <strong>副本数量：</strong>副本提供了数据的冗余备份，可以提高查询的吞吐量和系统的容错能力。在分布式部署时，可以根据业务的高可用性需求来调整副本的数量。
                                        </p>
                                    </li>
                                </ul>
                            </div>
                        </div>
                        
                        <div class="bg-white p-6 rounded-xl shadow-md">
                            <div class="mermaid">
                                pie title 分片与副本配置建议
                                    "主分片数 (3-5)" : 40
                                    "副本数 (1-2)" : 30
                                    "根据数据量调整" : 20
                                    "根据查询量调整" : 10
                            </div>
                        </div>
                    </div>
                </div>
                
                <div>
                    <h3 class="text-2xl font-semibold mb-6 text-gray-800 flex items-center">
                        <span class="w-8 h-8 bg-blue-500 rounded-full text-white flex items-center justify-center mr-3">2</span>
                        3.2 查询性能的优化
                    </h3>
                    
                    <div class="grid md:grid-cols-2 gap-8">
                        <div>
                            <p class="text-gray-700 mb-4">
                                对于高并发、高负载的系统，查询性能是一个重要的优化方向。以下是一些常见的优化手段：
                            </p>
                            
                            <div class="space-y-4">
                                <div class="bg-white p-6 rounded-lg shadow-sm">
                                    <h4 class="text-lg font-semibold mb-3 text-blue-600 flex items-center">
                                        <i class="fas fa-bolt mr-2"></i> 查询缓存
                                    </h4>
                                    <p class="text-gray-700">
                                        在分布式搜索系统中，查询缓存是提高查询响应速度的有效方式。可以使用内存缓存（如 Redis）来缓存常见的查询结果，减少重复查询的延迟。
                                    </p>
                                </div>
                                
                                <div class="bg-white p-6 rounded-lg shadow-sm">
                                    <h4 class="text-lg font-semibold mb-3 text-blue-600 flex items-center">
                                        <i class="fas fa-project-diagram mr-2"></i> 多路查询并行
                                    </h4>
                                    <p class="text-gray-700">
                                        将复杂的查询拆分为多个子查询，并通过多个节点并行处理，提高查询的响应速度。
                                    </p>
                                </div>
                            </div>
                        </div>
                        
                        <div class="bg-blue-50 p-6 rounded-xl border border-blue-100">
                            <div class="flex items-center mb-4">
                                <div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center text-blue-600 mr-4">
                                    <i class="fas fa-tachometer-alt"></i>
                                </div>
                                <h4 class="text-xl font-semibold text-gray-800">性能优化检查清单</h4>
                            </div>
                            <ul class="space-y-3 text-gray-700">
                                <li class="flex items-start">
                                    <i class="fas fa-check-circle text-blue-500 mt-1 mr-3"></i>
                                    <span>是否使用了查询缓存机制？</span>
                                </li>
                                <li class="flex items-start">
                                    <i class="fas fa-check-circle text-blue-500 mt-1 mr-3"></i>
                                    <span>是否对复杂查询进行了并行处理优化？</span>
                                </li>
                                <li class="flex items-start">
                                    <i class="fas fa-check-circle text-blue-500 mt-1 mr-3"></i>
                                    <span>是否对热点查询进行了特殊优化？</span>
                                </li>
                                <li class="flex items-start">
                                    <i class="fas fa-check-circle text-blue-500 mt-1 mr-3"></i>
                                    <span>是否监控了查询延迟并设置了告警？</span>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>
                
                <div>
                    <h3 class="text-2xl font-semibold mb-6 text-gray-800 flex items-center">
                        <span class="w-8 h-8 bg-blue-500 rounded-full text-white flex items-center justify-center mr-3">3</span>
                        3.3 高可用性与容错性设计
                    </h3>
                    
                    <div class="grid md:grid-cols-2 gap-8">
                        <div>
                            <p class="text-gray-700 mb-4">
                                在分布式搜索系统中，高可用性和容错性至关重要。以下是一些常见的高可用设计模式：
                            </p>
                            
                            <div class="space-y-4">
                                <div class="bg-white p-5 rounded-lg shadow-sm border-l-4 border-blue-500">
                                    <h4 class="text-lg font-semibold mb-2 text-gray-800">副本机制</h4>
                                    <p class="text-gray-700">
                                        每个分片都应设置多个副本，副本可以分布在不同的节点上，保证即使某些节点宕机，系统依然能够提供服务。
                                    </p>
                                </div>
                                
                                <div class="bg-white p-5 rounded-lg shadow-sm border-l-4 border-green-500">
                                    <h4 class="text-lg font-semibold mb-2 text-gray-800">故障转移机制</h4>
                                    <p class="text-gray-700">
                                        通过监控集群状态，自动检测节点故障，并将流量转发到健康节点，避免单点故障。
                                    </p>
                                </div>
                            </div>
                        </div>
                        
                        <div class="bg-white p-6 rounded-xl shadow-md">
                            <div class="mermaid">
                                graph LR
                                    A[客户端] --> B[负载均衡器]
                                    B --> C1[节点1: 主分片A, 副本B2]
                                    B --> C2[节点2: 主分片B, 副本A2]
                                    B --> C3[节点3: 副本A1, 副本B1]
                                    style C1 fill:#e3f9e5,stroke:#333
                                    style C2 fill:#e3f9e5,stroke:#333
                                    style C3 fill:#e3f9e5,stroke:#333
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Conclusion Section -->
    <section class="py-20 px-4 md:px-0 hero-gradient text-white">
        <div class="container mx-auto max-w-4xl text-center">
            <h2 class="text-3xl md:text-4xl font-bold mb-6">构建高性能分布式搜索系统的关键</h2>
            <p class="text-xl opacity-90 mb-8">
                通过合理设计架构、选择合适的实现方案，并持续优化性能和高可用性，我们可以构建出能够应对大数据挑战的分布式搜索系统。
            </p>
            <div class="inline-flex items-center bg-white bg-opacity-20 hover:bg-opacity-30 px-6 py-3 rounded-full font-medium transition-all duration-300 cursor-pointer">
                <i class="fas fa-book mr-2"></i> 了解更多技术细节
            </div>
        </div>
    </section>

    <!-- Footer -->
    <footer class="bg-gray-900 text-gray-400 py-12 px-4 md:px-0">
        <div class="container mx-auto max-w-5xl">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-4 md:mb-0">
                    <h3 class="text-xl font-bold text-white mb-2">技术小馆</h3>
                    <p class="text-gray-500">探索技术前沿，分享最佳实践</p>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="text-gray-400 hover:text-white transition-colors duration-300 flex items-center">
                        <i class="fas fa-globe mr-2"></i> http://www.yuque.com/jtostring
                    </a>
                </div>
            </div>
            <div class="border-t border-gray-800 mt-8 pt-8 text-sm text-center text-gray-600">
                © 2023 技术小馆. 保留所有权利.
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: { 
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            },
            pie: {
                useMaxWidth: true,
                htmlLabels: true
            },
            themeVariables: {
                primaryColor: '#f0f9ff',
                primaryBorderColor: '#0061ff',
                primaryTextColor: '#333',
                noteBkgColor: '#fff',
                noteTextColor: '#333',
                noteBorderColor: '#0061ff'
            }
        });
        
        // Simple fade-in animation on scroll
        document.addEventListener('DOMContentLoaded', function() {
            const fadeElements = document.querySelectorAll('.fade-in');
            
            const fadeInOnScroll = function() {
                fadeElements.forEach(element => {
                    const elementTop = element.getBoundingClientRect().top;
                    const elementBottom = element.getBoundingClientRect().bottom;
                    
                    if (elementTop < window.innerHeight && elementBottom > 0) {
                        element.style.opacity = '1';
                        element.style.transform = 'translateY(0)';
                    }
                });
            };
            
            // Initial check
            fadeInOnScroll();
            
            // Check on scroll
            window.addEventListener('scroll', fadeInOnScroll);
        });
    </script>
</body>
</html>
```